package com.founder.devwork.persistence.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.founder.devwork.dto.res.EngineerStatsDTO;
import com.founder.devwork.entity.Engineer;
import java.util.List;
import org.apache.ibatis.annotations.Param;

/**
 * EngineerMapper 用于操作 Engineer 表。
 * 提供查询工程师统计信息的方法。
 */
public interface EngineerMapper extends BaseMapper<Engineer> {
    /**
     * 查询工程师统计信息
     *
     * @param department 部门
     * @param name 姓名
     * @param sortBy 排序字段
     * @param sortDirection 排序方向
     * @param offset 偏移量
     * @param size 每页条数
     * @return EngineerStatsDTO列表，包含工程师统计信息
     */
    List<EngineerStatsDTO> selectEngineerStats(
        @Param("department") String department,
        @Param("name") String name,
        @Param("sortBy") String sortBy,
        @Param("sortDirection") String sortDirection,
        @Param("offset") int offset,
        @Param("size") int size
    );

    /**
     * 查询符合条件的工程师统计信息总数
     *
     * @param department 部门
     * @param name 姓名
     * @return 符合条件的工程师统计信息总数
     */
    long countEngineerStats(@Param("department") String department, @Param("name") String name);
}
